/*
 * @Author: Clark
 * @Email: haixuanwoTxh@gmail.com
 * @Date: 2023-01-04 17:30:41
 * @LastEditors: Clark
 * @LastEditTime: 2023-01-04 17:34:25
 * @Description: file content
 */

#include "apue.h"
#include <errno.h>

void make_temp(char *template);

int main()
{
    char good_template[] = "/tmp/dirXXXXXX";
    char *bad_template = "/tmp/dirXXXXXX";

    printf("trying to create first temp file...\n");
    make_temp(good_template);

    printf("trying to create second temp file...\n");
    make_temp(bad_template);

    exit(0);
}

void make_temp(char *template)
{
	int	fd = -1;
	struct stat	sbuf;

	if ((fd = mkstemp(template)) < 0)
	{
        err_sys("can't create temp file");
    }

	printf("temp name = %s\n", template);
	close(fd);

	if (stat(template, &sbuf) < 0)
    {
		if (errno == ENOENT)
			printf("file doesn't exist\n");
		else
			err_sys("stat failed");
	}
    else
    {
		printf("file exists\n");
		unlink(template);
	}
}
